Object Oriented Programming Systems (OOPS) and processes have been the subject of much investigation and interest in state of the art data processing environments. Object oriented programming is a computer programming packaging technique which provides reusable and easily expandable programs. In contrast with other conventional programming techniques which are not easily adaptable to new functional requirements and to new types of data, object oriented programs are reusable and expandable as new requirements arise. With the ever increasing complexity of computer based systems, object oriented programming has received increased attention and investigation. A more detailed description of object oriented programming can be found in a number of references, including Object Oriented Systems Analysis by Sally Shlaer and Stephen J. Mellor (Yourdon Press Computing Series, 1988), Object Oriented Design with Applications by Grady Booch (The Benjamin/Cummings Publishing Company, 1990), and, Object Oriented Software Construction by Bertrand Meyer (Prentice Hall, 1988).
In conventional programming techniques, emphasis is put on the methods to be conducted on particular data sets. However, in Object Oriented Programming Systems, emphasis is instead placed on real world objects which have attributes and actions to be performed on such attributes. An object is a data structure containing information about something of interest to particular systems and its users. For example, in a manufacturing system, an object of interest would be an "Engineering Change" (EC) object which contains information relating to an engineering change made to a part or process in the manufacturing system. This EC object could have information related to the owner of an EC, the number of the EC, or the date that the EC was created. Objects having similar characteristics and common behavior are known as instance objects of a class of objects. Therefore, instance objects contain information about things in the system while class objects contain information about instance objects.
In Object Oriented Programming Systems, messages are sent to objects. A message has three parts. The first part is an object while the second part is an action. The object of a particular message simply identifies that piece of data which comprises a specific object, that is, the instance. The action in the message then specifies what to do with that piece of data or instance. Finally, the third comprises optional parameters for use by the action.
Like conventional programming systems, several types of processing occurs in an Object Oriented Programming System. Examples of such types of processing include interactive, batch, and remote processing. Interactive processing occurs when users are working with an Object Oriented Programming System in real time using computer terminals. During interactive processing, the users submit interactive user commands to the Object Oriented Programming System for further processing. Conventionally, the Object Oriented Programming System processes the interactive user commands by issuing messages to objects. The messages then invoke methods, and the methods perform the functions specified by the interactive user commands.
Batch processing occurs when users submit batch user commands to an Object Oriented Programming System for processing at some later time. Conventionally, in an Object Oriented Programming System a batch user command is represented by one or more objects. These objects may be called queued message requests which are placed in a queue for later scheduling and processing by the Object Oriented Programming System.
Remote processing occurs when users submit remote user commands to the Object Oriented Programming System for processing in remote computing environments. In conventional Object Oriented Programming Systems, these remote user commands are also represented by queued message requests. These queued message requests are sent to the remote computing environment for further processing. This invention is primarily concerned with batch and remote processing in an Object Oriented Programming System, and consequently, operations in these environments will be emphasized throughout the remainder of this disclosure.
In an Object Oriented Programming System, work is accomplished by sending an action request to an object which contains or encapsulates some data. The object will then perform the requested action on the data according to its published specification. The requestor of such action need not know what the actual data looks like or how the object manipulates the data. This technique works quite well in a contained environment or within a given programming system. But in order to execute the action upon the specified object in a remote environment, such as another computing system, some means must be provided to encapsulate and transfer the information to the other system. The system receiving the information must then be able to interpret it, reconstruct the desired action along with its associated parameters, and cause the action to be performed on the appropriate object. A similar problem occurs in the batch processing environment because data is moving from one memory segment to another memory segment. Consequently, the data moving from one segment of memory to another and thus from one memory address space to another must somehow be encapsulated and transferred from the sending memory segment to the receiving memory segment. The receiving memory segment must then be able to interpret the information, reconstruct the desired action with its parameters, and cause the action to be performed on the appropriate object.